package leetcode;

import java.util.HashSet;
import java.util.List;

/**
 * 背包问题：单词拆分
 */
public class Solution52 {
    class Solution {
        public boolean wordBreak(String s, List<String> wordDict) {
            HashSet<String> set = new HashSet<>(wordDict);
            boolean[] valid = new boolean[s.length() + 1];
            valid[0] = true;

            for(int i = 1;i <= s.length();i++){
                for(int j = 0; j < i && !valid[i];j++){
                    if(set.contains(s.substring(j,i)) && valid[j]){
                        valid[i] = true;
                    }
                }
            }
            return valid[s.length()];
        }
    }
}
